Обновить

I2P transit traffic: network breathing and an important requirement for anonymity

Время на прочтение 7 min
Количество просмотров 7K

I2P — one of the leading players among anonymous networks. Along with it, the projects ZeroNet, FreeNet and others flash. According to the author’s subjective assessments, I2P is the second largest project after TOR.

"The Invisible Internet Project (aka I2P) boasts complete independence of development from legal and government entities, systematic and long-term development, as well as high-quality cryptography in professional execution in production languages ​​​​C++ and Java (versus student crafts in interpreted slow languages).

It is important to note that the development of two network clients (in C++ And in Java) conducted by different groups of people who are actually independent of each other. Naturally, this does not prevent them from coordinating and introducing innovations into the network protocol. Development is decentralized and discussions are transparent, which has a good effect on trust in the final product (logs IRC-chats: Team C++, java team And general chat for scheduled discussions).

If the topic of anti-censorship doesn't make you uncomfortable and you have the enthusiasm to learn something new, the spirit of I2P will appeal to you.

I2P is a peer-to-peer network that runs on top of the regular Internet as an additional encrypted transport layer (also read I2P via Yggdrasil Network). Unlike routes in a regular network, the path of traffic in I2P is unpredictable - traffic, passing from the user to the destination, overcomes an average of 6 random transit nodes, which are other I2P participants.

Unlike TOR, where the communication channel is bidirectional, I2P traffic flows through unidirectional tunnels. Thus, packets to the server go through, for example, random nodes in Russia, Kazakhstan and Europe, and the server’s response goes to the user through the USA, Canada and Japan. Every ten minutes, all encrypted communication tunnels are updated with a completely new logical pattern and cryptographic keys. At first, this is difficult to even imagine: the user does not know the physical location of the server he is accessing, and the server knows nothing about the user, thanks to transit nodes, which themselves have no way of knowing who they are serving. Read more about tunnels in a separate article. article.

The I2P transit nodes through which routes are built are not trusted servers of world organizations, institutions or anyone else, but mainly the nodes of ordinary network participants. All I2P users can be transit nodes by default. If this is news to you, don’t worry: the I2P architecture does not imply proxy output to the regular Internet, so no one will open a dubious page from your IP address in order to like it. Within the I2P network itself, the IP addresses of network participants from whom direct connections come are a priori of approximately zero significance, since such an address is just the address of a ten-minute transit link, which, even if it wants to, does not know who and what is transmitting through it.

By default, the I2P router, that is, the application for accessing this hidden network, has a very low threshold for the transit flow - only 32KB/sec (this is necessary so that users with limited traffic unknowingly do not end up with nothing after a couple of days of using I2P) . To increase the transit channel on i2pd (network client in C++), specify the value in the configuration file bandwidth = X (letter X means unlimited channel).

Increase transit, provide your channel for some unknown users?! Why on earth would you give up your power for the benefit of the network? This is the main question of the article, which is far from limited to altruism!

Statement of a question

We are used to launching an application only when we need its functionality. For example, open an online store page to make a purchase. It's simple.

However, when it comes to anonymity and hidden networks, the first thing that comes to mind is a timing attack. Its essence is in the synchronization of events: an observer, using special technical means, monitors the movement of traffic in a geographic region and monitors the activity of a person in a hidden network, which he wants to compare with a real person. According to some experts, calculating a specific user of the TOR network using this method requires less than five time points. This is achieved due to the fact that a limited number of people use the TOR network in a city, region or country. The main suspect is the one who is connected to the TOR network during all control measurements at the time of publication on an anonymous forum or chat. It should be especially noted that a timing attack does not imply decryption of a secure connection. The effectiveness of the method lies in the perseverance and attentiveness of the observer..

Deep traffic analysis or DPI (Deep Packet Inspection) is widely used in Internet control systems (for example, SORM in Russia). Such technologies make it possible to tell with a high probability which protocol or application the passing traffic belongs to, which, therefore, makes it possible to understand what the subscriber is doing or interested in.

Using a VPN is not very effective against a timing attack in a hidden network, since an observer can monitor the presence of traffic not only specific to the TOR network, but also make comparisons with any other anonymous information flows.

All serious projects aimed at anonymity and resistance to censorship have various tools for deceiving DPI and bypassing their protocol blocking. Without a doubt: I2P is among them. To take advantage of the full power of I2P, you do not need additional plugins, such as in TOR. Everything works by default - you just need to periodically update your I2P router (application for accessing the network) to stay on top of technology.

We will not go into complex technical details and demagoguery, since ultimately, no matter how much a user hides, if his traffic is not identical to the opening of state propaganda news portals, at the first opportunity he will become suspected of using something like that.

Why does a user need transit?

A timing attack in the general case is based on the ability of an observer to monitor the subscriber’s activity. For example, when you watch a streaming video, a large stream of data is visible to the provider. If your tariff plan includes a traffic limit, every byte you receive is charged. This clearly demonstrates the transparency of user activity for the telecom operator. Accordingly, when you sleep, the provider sees a lull.

Let's imagine that a user has placed a personal website on his computer and provided access to it from a hidden network. If someone suddenly becomes interested in who is the owner of a resource, it is unlikely that he will attempt to hack a complex transport protocol. Various techniques will be used, from social engineering to timing attacks..

Simply put, a timing attack can be carried out like this: thousands of requests will be sent to a hidden site at the same time and they will observe where the burst of activity appeared on the regular Internet, that is, where all these requests arrived. The task is large-scale, but the elusive Joe is elusive only as long as no one needs him.

Let’s imagine that no one visits the site and the activity of the server’s Internet channel is practically zero. Suddenly, the observer simultaneously sends a large number of requests to the server from different devices (performs a primitive DDoS attack). Passing through the intricate tunnels of the hidden network, all requests reach the server and its real network channel experiences an obvious increase in load.

If the server you are looking for is physically located in a controlled segment of the Internet, for example, on the territory of the country whose intelligence services are conducting the operation, several matches at different times of the day will be enough to say with confidence where the hidden site is actually hosted.

The timing attack is applied in approximately the same way to ordinary users: virtual activity is compared with real bursts of subscriber activity. In practice, everything is somewhat more complicated, but these are nuances that do not interest us in this article..

Now let’s imagine that the activity of the Internet channel of a server or user device does not depend in any way on its useful activity (that is, real actions). This is possible if the network channel is always under load. In this case, observations from the outside are useless, since real activity is nothing more than an error in the turbulent and constantly jumping flow of transit traffic. This phenomenon can be compared to noise: if music is playing loudly at home, you can scream until you are hoarse, and when you meet your neighbors they will only say that you are listening to Baskov too loudly.

Network activity of a server with i2pd at rest (screenshot of the nload utility)
Network activity of a server with i2pd at rest (screenshot of the nload utility)

The screenshot below shows the difference between Sent And Transit in the i2pd web console, from which it is clear that out of 9TiB of outgoing packets, the server gave only about 6GiB of its real information to users who contacted it.

The fact that these 6 gibibyte it is impossible to isolate from the entire encrypted stream when observed from the outside, and there is a clear illustration of the benefit of a large transit as a guarantor against possible timing attacks.

With a large number of transit tunnels, an I2P router builds its own tunnels using routers, together with which it makes other people’s transit tunnels. Overlaying your information on the tunnels of other participants turns I2P router connections into an insoluble tangle of encrypted labyrinths that cannot be analyzed by anyone..

How to get a lot of transit

First, pay attention to the I2P router settings that we talked about at the beginning of the article.

I2P routers communicate directly with each other. Therefore, for your node to receive a lot of transit, it must be easily accessible. In other words, you must have a dedicated IP address to receive calls from outside, but for a home PC or smartphone with a “gray” IP address, the small transit that will still happen is a good help for the error in observations from the outside. Despite the lack of a dedicated IP address, I2P routers are still able to establish direct contact (you can read about this here).

Each I2P router has a profiling function that helps select reliable nodes as transit nodes - the more stable the online of your node, the more preferable it is for other participants to build tunnels.

If for some reason you have to turn off your “boosted” server or PC for a long time, you will provoke many unsuccessful connection attempts from other network participants, which is why your status as a reliable node will gradually change to unreliable. As a result, when you start up again, transit traffic will drop significantly. In i2pd, the profiled information is considered relevant for three days (about the same in the Java version), after which the I2P router is again ready to check the quality of the previously unreliable router and, if it has improved, mark it with a quality mark. As an alternative, you can quickly start from scratch by deleting the router identifier (file router.info) and restarting the I2P router. In Debian, this file is located by default in the folder /var/lib/i2pd/.

Open Kingstons

The more nodes there are in I2P, the more distributed and stable the network is before analysis. The more traffic on each node, the more anonymous the entire network. By including transit for your purposes, you help everyone. By helping everyone, you ensure your anonymity.

If you have not only unlimited Internet, but also disk space, you can make some noise with double benefit: read the article about torrents in I2P.

Tags:
Hubs:
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 22

Comments 22

With all due respect to i2p, he is completely unprepared to fight the KGB. Why? Because the "tangled ball" works well against a passive observer, but does not work against a SORM with a shaper.

I’ll tell you how to catch a server in I2P in a few measurements.

  1. Define a list of i2p users. This is easy to do, because... i2p traffic is easy to find by signatures.

  2. Establish a connection to the attacked site.

  3. Turn off i2p traffic for 50% of suspicious users for a short time (drop packets for 10-30s)

  4. If the speed of the active connection to the site has not dropped, exclude the remaining 50% from the suspects. If you fall, wait 10-20 minutes and go to p..2.

  5. Wait 10-20 minutes (rebuilding tunnels).

  6. If the number of remaining suspects is greater than 1, go to step.3

After 10-20-30 iterations you have a suspect, and several benchmark changes in i2p channel speed prove a direct correlation between the suspect's channel slowdown and site access slowdown.

Similarly, you can search for an i2p user, although the presence of i2p traffic can already be considered sufficient to attract procedural actions in connection with suspicion of participation in the activities of an extremist community (anyone whose i2p was found in at least one member).

There is a good grain of truth in your words, but it is too pessimistic. There is a simple solution for static sites - multihoming. However, this solution, if you have the desire and skills, is applicable to resources with complex logic, where I2P will act as an external distributed facade of the central server (in the simplest case with reverse web servers, something like “thin clients”").

After the final gateways are identified, their traffic is looked at, and using the same throttling, the final server is discovered. In fact, node owners participating in multihoming may already be involved in procedural actions, and they will either point to the customer themselves, or refer to 51, after which they will change the procedural status.

I would really like to have a well-protected private network, but i2p is completely unprepared to fight a repressive state.

After the final gateways have been identified, their traffic is looked at, and
using the same throttling, the final server is detected.

If there is only one server, your first comment is valid. If multihoming is used with servers in different jurisdictions, and even more so, if there are more than two servers in multihoming, the detection method you stated, in my opinion, practically comes to naught.

The essence of multihoming is that for an observer, several servers on an I2P network are perceived as one. If one of the servers in a multi-homing link is turned off by shaping or by actually turning off the server's power, no visible changes will occur: the hidden resource will remain online thanks to its other servers from the multi-homing link..

There will be no visible changes for new clients, because they will build tunnels to those servers that are online.


And for those clients whose tunnels have already been built, these same tunnels will fall off, which is quite easy to notice even without resorting to analyzing the internals of i2p. After all, building a new tunnel takes between 2 and 5 minutes.

  1. Shaping is not “turning off” traffic, but slowing it down. The slowdown does not lead to a restructuring of the client's route, but is statistically detected.

  2. You named the main method of protecting i2p from gebni - placing servers outside the jurisdiction of the Russian Federation. Yes, in this mode everything will work for you even without multihoming - host the server outside the Russian Federation and all business.

I also think of multihoming with two types of tunnels: 1) HTTP tunnels with a larger number of hops for clients and 2) SAM tunnels with a smaller number of hops for synchronizing servers. Do you think this is a promising solution??

Yes good idea.

In general, you are right, there was a case when they imprisoned/tried to imprison a person with a Tor gateway. Regarding i2p, doesn’t the traffic pass through several participants and the exit point is outside the jurisdiction of SORM, then everything seems to be ok?

Here the situation is better than in the case of a Tor gateway, because all traffic remains in the i2p network, and does not go out to the open Internet on someone else’s behalf.


However, this does not mean that the attack described above is impossible. In fact, you never know where the end of the tunnel is, whether SORM is there or not. So you went to the site, walk around it, look at the links - and the server with the site has long been under the supervision of "Gebni"".

Thank you comrade. Major for the clarification! Let's be careful :)

In I2P there is no access to the regular Internet (unlike TOP, where they wanted to imprison the owner of the output node). The I2P network is closed within itself, so to access the regular Internet or other networks through it you must use a specially configured proxy server (example), which accepts connections from I2P and sends them to the Internet on its own behalf.

It is almost pointless to investigate the normal activity of I2P nodes in order to compare who formed the transit tunnel at a given time. The architecture is designed so that transit nodes do not know whose information they are transmitting, the length of the tunnel they are in, and where the destination of the transmitted encrypted packets is..

Even if I2P is prohibited by law, it will be of little use. TOR is blocked in Russia, but I still use it successfully to this day. It's a similar story with I2P: transport protocols are updated and become more and more elusive to DPI systems, which, if blocked, will be responsible for identifying and blocking prohibited traffic. If we take into account the current geopolitical situation of Russia and import substitution, which does not work without imports, the topic of any great successes for Russia in IT is disappearing from the horizons of the foreseeable future: now we need to somehow support the existing infrastructure, and not dream about upgrades.

Got it, thanks for the detailed answer. I knew about network to network, but in the context of the conversation, it seemed to me that exit gateways had already been made.
The tendency towards distribution on the face and the Russian Federation will fight this, no doubt. But this is already a matter of politics and we will not discuss.

just the opposite. There used to be gateways, but now there aren't.

Why this mantra about “closed on itself” and “they can’t ban"?

If the gebni has information about “interesting” on the i2p server, then firstly they will check it (connecting to i2p is not a big job), and secondly, as part of calculating the source of the “interesting” they will execute this algorithm. Without any "legislative prohibition"".

Ultimately, we agree that the servers should be hosted outside the jurisdiction. And in this regard, I agree with your arguments - the best solution.

However, for the user, transit remains useful for the reasons described in the article. It is transit that will prevent most timing attacks against it, and shaping (i.e. partial reduction of channel capacity on the part of the provider) is not a big hindrance to the user, since the essence of transit on its side is to timestamp any message in the hidden network was not matched with his subscriber network activity. Transit is the guarantor of that same constant “noise”, and shaping will only proportionally reduce this noise, not allowing any specific conclusions to be drawn when observed from the outside.

Transit does not help at all against a shaping attack. The major establishes a connection to the i2p resource and records the speed. Performs a shaping attack with a significant reduction (several times lower than the recorded speed). Then it checks the speed with the resource. If it has not changed, then the node does not participate in the chain. If it has changed, then it is either a transit, an accident, or the server you are looking for. Repeat 10-20-30 times and get statistical proof.

Perhaps you did not understand what exactly is being shaped. The entire user channel is shaped on the provider’s equipment, and changes are recorded in the “control request” inside i2p. There is no active selective shaping in the i2p threat model, although it still needs to be taken into account.

My previous comment is not about intranet resources (servers), but about users who access them at random times.

What's the goal? Prove that someone is using i2p? We see traffic - it.

Prove that someone is using specific i2p resources? Take the computer out and have a look.

Let's be realistic, https://xkcd.com/538/ applicable in this situation on a much more dramatic scale.

The user uses a hidden network to remain anonymous. The essence of transit traffic for the user is that a post in a chat or forum cannot be compared with the real network activity of a particular user.

A popular argument is that you can attack tens of thousands of people with brute force to analyze their PCs in search of the author of “that very post” only based on the presence of I2P traffic on their router (which still needs to be detected, which is not always easy or possible) and this does not require any science, it seems to me mostly naive.

Ultimately, there is no absolute security and no absolute anonymity. The question is to make your calculation as difficult as possible for a third party. Ideally, to the extent that the ends no longer justify the means..

  1. Find sedition in i2p

  2. Declare sedition an extremist organization (this is not a reservation)

  3. Declare i2p an accomplice of an extremist organization (and for this you do not need to have a legal entity - enough evidence that it is a conspiracy network that provides assistance to extremists).

  4. Offer to voluntarily stop participating in the activity.

  5. To everyone who has not stopped, come as accomplices.

Don't believe me? Who are the big extremists - i2p or Jehovah's Witnesses?

It seems that this is a problem not only with i2p, but with all network services in general. Tomorrow they will say that foreign agents communicate through this Internet of yours, so it was decided to leave 2.5 state websites, and penalties were introduced for the use of others. I hope I don’t understand how the Internet works and what I wrote is impossible, but for now I have this picture in my head)))

Only full-fledged users can leave comments. Sign in, Please.